package com.aigou.admin.service.impl;


import com.aigou.admin.dao.UserDAO;
import com.aigou.admin.dao.impl.UserDAOImpl;
import com.aigou.admin.entity.User;
import com.aigou.admin.service.UserService;

import java.util.List;

/**
 * 业务逻辑实现类，用于处理用户相关的业务逻辑
 */
public class UserServiceImpl implements UserService {
    // 调用dao 层对象
    // 创建UserDAO的实例，用于执行用户相关的数据库操作
    private UserDAO userDAO = new UserDAOImpl();
    // 查询所有用户
    @Override
    public List<User> findAll() {
        return userDAO.selectAll();
    }

    @Override
    /**
     * 根据用户ID查找用户信息
     * 此方法用于通过用户ID从数据库中检索用户信息它依赖于UserDAO类来执行实际的数据库操作
     *
     * @param userId 用户ID，用于数据库查询以定位特定用户信息
     * @return User 对象，如果找到匹配的用户信息则返回，否则返回null
     */
    public User findById(String userId) {
        return userDAO.selctById(userId);
    }

    @Override
    /**
     * 保存用户信息
     *
     * 该方法负责将用户对象传递给用户数据访问对象（UserDAO）进行插入操作
     * 主要目的是在数据库中创建一个新的用户记录
     *
     * @param user 待保存的用户对象，包含用户的相关信息
     *             user对象里面存着用户ID、用户名、密码和用户类型等信息
     * @return 返回一个布尔值，表示用户信息是否成功保存
     *         如果返回true，表示用户信息已成功插入数据库
     *         如果返回false，表示用户信息插入数据库失败
     */
    public boolean save(User user) {
        return userDAO.insert(user);
    }

    @Override
    public boolean remove(String userId) {
        return userDAO.delete(userId);
    }

    @Override
    public boolean update(User user) {
        return userDAO.update(user);
    }

}
